Skip to content

recipe(yolos-fashionpedia): add object detection recipes#1125

Merged
DingmaomaoBJTU merged 4 commits into
mainfrom
kujin66/add-yolos-fashionpedia-recipe
Jul 23, 2026
Merged

recipe(yolos-fashionpedia): add object detection recipes#1125
DingmaomaoBJTU merged 4 commits into
mainfrom
kujin66/add-yolos-fashionpedia-recipe

Conversation

@kujin66

@kujin66 kujin66 commented Jul 16, 2026

Copy link
Copy Markdown
Contributor

Summary

Adds explicit CPU fp32 and fp16 recipes for valentinafevu/yolos-fashionpedia, a YOLOS object-detection checkpoint for apparel and accessory detections. This is an Effort L0 / Outcome L0 recipe-only contribution because current main already exports the model without a recipe; the recipes record verified precision coverage and the pinned Fashionpedia evaluation contract. Full required-tuple coverage reached the committed highest Goal with L3 PASS.

Model metadata

  1. What the model does — A YOLOS vision-transformer checkpoint fine-tuned on Fashionpedia that accepts a fashion image and predicts up to 100 objects as 46 apparel/accessory categories with normalized bounding boxes. Evidence: checkpoint model card and config at revision 0cfdb77c01cfbf0838b940ecff9c572f84c9d4f4, YolosForObjectDetection source, and ONNX outputs logits [1,100,47] and pred_boxes [1,100,4]. Confidence: verified.
  2. Primary user stories — A user supplies a fashion image to obtain apparel/accessory category detections and bounding boxes for cataloging, visual search, or fashion-image analysis. Evidence: the checkpoint model card describes a Fashionpedia fine-tuned object detector, and the pinned config contains the Fashionpedia label map. Confidence: mapped.
  3. Supported tasksobject-detection across the checkpoint, Transformers, Optimum ONNX, and WinML surfaces. Evidence: Hub pipeline_tag, YolosForObjectDetection architecture, Optimum registration probe, and WinML inspect/config on current main. Confidence: verified.
  4. Model architecture — YOLOS-Small object detector: 16×16 patch projection into a 384-wide token sequence, 100 learned detection tokens, twelve 6-head transformer encoder layers with 1536-wide GELU MLPs, and separate class and box heads.
YolosForObjectDetection
├── YOLOS vision transformer (YolosModel)
│   ├── Patch projection (Conv2d, 3→384, kernel/stride 16)
│   ├── CLS token + 100 detection tokens + position embeddings
│   ├── Transformer encoder layer × 12
│   │   ├── 6-head self-attention (hidden size 384)
│   │   ├── Feed-forward (384→1536→384, GELU)
│   │   └── Residual + LayerNorm
│   └── Final LayerNorm
├── Class head (384→47: 46 labels + no-object)
└── Box MLP head (384→384→384→4, sigmoid)
  • Source/confidence: pinned checkpoint dimensions, Transformers YolosForObjectDetection source, and built ONNX scopes/I/O (mapped).

Validation and support evidence

Baseline

  • Replacement charter revision 2 pins current main at 26a4a82b638f2169b5a2f75758abb31a60b1774e; WinML 0.2.0; checkpoint revision 0cfdb77c01cfbf0838b940ecff9c572f84c9d4f4.
  • Starting auto-config: PASS with task object-detection, AutoModelForObjectDetection, input [1,3,512,864], outputs logits and pred_boxes, requested opset 17, and current-default export.dynamo=true.
  • Recipe-free build: PASS in 72.65718199999999 s; Dynamo could not lower requested opset 17 and retained actual opset 18; the optimized artifact has 479 nodes, with 197/225 modules recovered and 512/512 pre-optimization exported nodes tagged. Public I/O is pixel_values [1,3,512,864] float32 to logits [1,100,47] and pred_boxes [1,100,4].
  • Baseline CPU fp32 perf: PASS in 24.2293859 s; mean 390.159 ms, p50 385.305 ms, throughput 2.56 samples/s, RSS total delta 413.77 MB, local/shared VRAM total delta 0.0/0.0 MB.
  • Baseline pinned Fashionpedia eval: PASS in 97.80928689999999 s on 10 deterministic, unshuffled, streaming images from the val split of detection-datasets/fashionpedia revision 80845435ce686b8a9dbf70a05452fbfb8e09cdd7; map=0.008183383382856846, map_50=0.03340508043766022, and map_75=0.0009040034492500126.
  • Optimum's yolos registration exposes feature-extraction and object-detection both before and after WinML registration, with no WinML-added task (VENDOR-ONLY). The current-main recipe-free Dynamo build/perf/eval raises the baseline Goal floor to L3.
  • Runtime measurements used a host-only fail-closed catalog workaround after the auto-installed OpenVINO 1.8.15.0 plugin failed because openvino.dll was missing. CPUExecutionProvider behavior and task semantics were unchanged.

Goal

  • Committed axes: Effort L0 / Goal ceiling L3 / Outcome L0.
  • Charter revision 2 superseded revision 1 after main moved from 5deebd422e95f28fe8fd912ee50ce874710187b3 to 26a4a82b638f2169b5a2f75758abb31a60b1774e and Dynamo became the default exporter. Effort, Goal ceiling, Outcome, and the CPU fp32/fp16 precision plan did not change; the baseline Goal floor changed from L0 to L3, and both recipes were refreshed from the dynamo=true starting config.
  • Success definition: both required CPU fp32/fp16 tuples freshly pass L0 build/structure/precision, L1 perf, independent pinned named-input PyTorch parity at L2, and pinned immutable Fashionpedia task evaluation at L3.

Outcome

  • Shipped tier: L0; highest Goal verdict: L3 PASS; coverage: full; deferred tuples: none; no ceiling downgrade.
  • Shipped recipes: examples/recipes/valentinafevu_yolos-fashionpedia/cpu/cpu/object-detection_fp32_config.json and examples/recipes/valentinafevu_yolos-fashionpedia/cpu/cpu/object-detection_fp16_config.json. No source, test, skill, or recipe README files changed.
  • Final evidence is bound to PR head 587dc4940ccc55052f92cfcf7471c483abbfbbee, matching the pushed remote head. Both artifacts preserve named I/O, pass deterministic PyTorch parity, and complete the pinned Fashionpedia evaluation with equal metrics.
  • Learner findings retained in the head-bound handoff: current-default Dynamo removes the old legacy-exporter requirement for this checkpoint; CPU fp16 halves artifact size but is slower and uses more RSS than fp32 on this tested host while preserving task output; and static QNN partial support identifies a portability target, not runtime non-CPU support. No generalized model-knowledge or methodology finding was appended, so no Lane A change was created.
  • Quality: 8/8 PASS at the bound head — license insertion, Ruff, and mypy (409 source files) passed; test groups passed with 1441 passed, 45 skipped, 1374 passed, 6 skipped, 1 xfailed, 547 passed, 16 skipped, 1 xfailed, 2381 passed, 8 skipped, 2 deselected, 1 warning, and 895 passed, 1 skipped, 1 deselected.

Per-EP/device/precision results — including perf and eval data

Goal ladder

Tier CPUExecutionProvider / cpu / fp32 CPUExecutionProvider / cpu / fp16 Overall verdict
L0 — build/structure PASS — 479 nodes; 226 FLOAT + 8 INT64 initializers; final artifact 122,746,557 bytes PASS — 482 nodes; 226 FLOAT16 + 8 INT64 initializers; final artifact 61,398,888 bytes PASS — 2/2 required tuples; fp16/fp32 size ratio 0.5002086372166024
L1 — perf PASS — mean 383.452 ms PASS — mean 561.071 ms PASS
L2 — PyTorch parity PASS — max relative L2 4.0732761197129765e-070.0001 PASS — max relative L2 0.000325451419549600940.02 PASS — three named pixel_values cases, seeds 1125/1126/1127
L3 — task metric PASS — map=0.008183383382856846 PASS — map=0.008183383382856846 PASS — both required tuples completed pinned 10-image evaluation

Perf

EP / Device Precision Verdict Mean p50 Throughput RAM Δ Local/shared VRAM Δ Iterations / warmup
CPUExecutionProvider / cpu fp32 PASS 383.452 ms 381.623 ms 2.61 samples/s 414.18 MB 0.0 / 0.0 MB 10 / 2
CPUExecutionProvider / cpu fp16 PASS 561.071 ms 557.84 ms 1.78 samples/s 596.22 MB 0.0 / 0.0 MB 10 / 2

L2 named-output parity

Precision Seed logits relative L2 / max abs / cosine pred_boxes relative L2 / max abs / cosine
fp32 1125 4.0732761197129765e-07 / 3.4332275390625e-05 / 0.9999999999999315 3.404825702845074e-07 / 8.642673492431641e-07 / 0.9999999999999427
fp32 1126 3.6194573764642535e-07 / 2.6702880859375e-05 / 0.9999999999999393 2.7815653215006376e-07 / 7.450580596923828e-07 / 0.9999999999999619
fp32 1127 3.589138726843671e-07 / 4.38690185546875e-05 / 0.9999999999999404 2.5415491764415985e-07 / 7.748603820800781e-07 / 0.9999999999999682
fp16 1125 0.00030906446946667073 / 0.02220916748046875 / 0.9999999522408098 0.00017206655510448084 / 0.00031706690788269043 / 0.9999999852604352
fp16 1126 0.00030961606480088577 / 0.02060222625732422 / 0.9999999521743197 0.00016269199647949518 / 0.00035765767097473145 / 0.9999999868056051
fp16 1127 0.00032545141954960094 / 0.020757675170898438 / 0.9999999474196418 0.00016939985973302916 / 0.00038814544677734375 / 0.9999999856963997

Eval

Dataset for both rows: detection-datasets/fashionpedia at revision 80845435ce686b8a9dbf70a05452fbfb8e09cdd7, no subset, split val, 10 deterministic unshuffled streaming samples.

EP / Device Precision Verdict mAP mAP50 mAP75 Predictions Ground truths Images
CPUExecutionProvider / cpu fp32 PASS 0.008183383382856846 0.03340508043766022 0.0009040034492500126 1000 93 10
CPUExecutionProvider / cpu fp16 PASS 0.008183383382856846 0.03340508043766022 0.0009040034492500126 1000 93 10

Delta

  • Both shipped recipes retain the replacement-charter starting config's /export/dynamo = true; the old /export/dynamo = false legacy-exporter pin is removed.
  • Relative to the current-main Dynamo auto-config, both recipes add /eval from missing to the pinned object-detection contract: detection-datasets/fashionpedia revision 80845435ce686b8a9dbf70a05452fbfb8e09cdd7, split val, 10 samples, shuffle=false, seed 42, streaming=true, input image, annotations objects, bbox key bbox, category key category, absolute xywh boxes.
  • The fp32 recipe has no other JSON-pointer delta.
  • The fp16 recipe also changes /quant from null to {mode: fp16, samples: 10, calibration_method: minmax, weight_type: uint8, activation_type: uint8, per_channel: false, symmetric: false, weight_symmetric: null, activation_symmetric: null, save_calibration: false, distribution: uniform, seed: null, calibration_load_path: null, calibration_save_path: null, op_types_to_quantize: null, nodes_to_exclude: null, fp16_keep_io_types: true, fp16_op_block_list: null}.
  • There are no code paths, symbols, or class-wide behavior changes. Export, loader, optimization, and compile fields are identical to the replacement-charter auto-config; only checkpoint-specific /eval declarations and the explicit fp16 /quant precision delta remain. Reducibility is consistent with the charter, recipe-free acceptance is PASS on current main, and examples/recipes/README.md remains untouched.

Analyze summary — component level and op level

Static rule analysis is ANALYZE-PARTIAL-SUCCESS for both artifacts: winml analyze intentionally exits 1 when any requested EP is not fully supported, but each output is complete for all 11 requested EP/device pairs. This is static compatibility analysis, not runtime execution.

Component-level summary

Artifact Architecture coverage Mapping Confidence Actionable EP findings
fp32 embeddings; 12 transformer encoder layers; final LayerNorm/detection-token selection; class head; box head 479 semantic-scope nodes mapped; 0 optimizer fallback; 0 unmapped mapped from optimized topological boundaries and HTP hierarchy QNN GPU/NPU partial: Reshape, Div, Erf, Add, Mul; unsupported: none
fp16 embeddings; 12 transformer encoder layers; final LayerNorm/detection-token selection; class head; box head 482 semantic-scope nodes mapped; 0 optimizer fallback; 0 unmapped mapped from optimized topological boundaries and HTP hierarchy QNN GPU/NPU partial: Reshape, Div, Erf, Add, Mul; unsupported: none

Op-level summary

Artifact Graph Dominant ops EP roll-up
fp32 479 operators / 14 types Add 126; MatMul 102; Reshape 73; Transpose 61; Mul 48 NvTensorRTRTX GPU and OpenVINO NPU/GPU/CPU fully supported by available rules; QNN GPU/NPU partial for Reshape, Div, Erf, Add, Mul; unsupported: none
fp16 482 operators / 15 types Add 126; MatMul 102; Reshape 73; Transpose 61; Mul 48 NvTensorRTRTX GPU and OpenVINO NPU/GPU/CPU fully supported by available rules; QNN GPU/NPU partial for Reshape, Div, Erf, Add, Mul; unsupported: none

Rule-less CUDA GPU, MIGraphX GPU, DML GPU, CPU, and VitisAI NPU rows classify every operator type as unknown. Each artifact also reports 12 informational SUBGRAPH/GeluPattern instances.

Reproduce commands

$OUT = Join-Path $PWD 'yolos-fashionpedia-validation'
New-Item -ItemType Directory -Force $OUT | Out-Null
$MODEL = python -c "from huggingface_hub import snapshot_download; print(snapshot_download('valentinafevu/yolos-fashionpedia', revision='0cfdb77c01cfbf0838b940ecff9c572f84c9d4f4'))"
$env:WINMLCLI_RULES_DIR = '<populated-rules-directory>'
winml build -m $MODEL -c examples/recipes/valentinafevu_yolos-fashionpedia/cpu/cpu/object-detection_fp32_config.json -o $OUT/fp32 --ep cpu --device cpu --precision fp32 --no-analyze --no-compile --rebuild --no-color
winml build -m $MODEL -c examples/recipes/valentinafevu_yolos-fashionpedia/cpu/cpu/object-detection_fp16_config.json -o $OUT/fp16 --ep cpu --device cpu --precision fp16 --no-analyze --no-compile --rebuild --no-color
winml perf -m $OUT/fp32/model.onnx --ep cpu --device cpu --precision fp32 --iterations 10 --warmup 2 --memory --output $OUT/perf-fp32.json --overwrite --format json --no-color
winml perf -m $OUT/fp16/model.onnx --ep cpu --device cpu --precision fp16 --iterations 10 --warmup 2 --memory --output $OUT/perf-fp16.json --overwrite --format json --no-color
winml eval --model $OUT/fp32/model.onnx --model-id valentinafevu/yolos-fashionpedia --dataset detection-datasets/fashionpedia --dataset-revision 80845435ce686b8a9dbf70a05452fbfb8e09cdd7 --task object-detection --device cpu --ep cpu --samples 10 --split val --no-shuffle --streaming --column input_column=image --column annotation_column=objects --column bbox_key=bbox --column category_key=category --column box_format=xywh --column box_coords=absolute --output $OUT/eval-fp32.json --overwrite --format json --no-color
winml eval --model $OUT/fp16/model.onnx --model-id valentinafevu/yolos-fashionpedia --dataset detection-datasets/fashionpedia --dataset-revision 80845435ce686b8a9dbf70a05452fbfb8e09cdd7 --task object-detection --device cpu --ep cpu --samples 10 --split val --no-shuffle --streaming --column input_column=image --column annotation_column=objects --column bbox_key=bbox --column category_key=category --column box_format=xywh --column box_coords=absolute --output $OUT/eval-fp16.json --overwrite --format json --no-color
winml analyze --model $OUT/fp32/model.onnx --ep all --device all --htp-metadata $OUT/fp32/export_htp_metadata.json --output $OUT/analyze-fp32.json --overwrite --format json --no-color
winml analyze --model $OUT/fp16/model.onnx --ep all --device all --htp-metadata $OUT/fp16/export_htp_metadata.json --output $OUT/analyze-fp16.json --overwrite --format json --no-color
Remove-Item Env:WINMLCLI_RULES_DIR
uv run pre-commit run insert-license --all-files
uv run ruff check src/ tests/
uv run mypy -p winml.modelkit
uv run pytest tests/unit/analyze --tb=short --no-cov -m 'not e2e and not npu and not gpu'
uv run pytest tests/unit/models tests/unit/loader tests/unit/datasets tests/unit/export --tb=short --no-cov -m 'not e2e and not npu and not gpu'
uv run pytest tests/unit/optim --tb=short --no-cov -m 'not e2e and not npu and not gpu'
uv run pytest tests/unit/commands tests/unit/config tests/unit/build tests/unit/compiler tests/unit/session tests/unit/eval --tb=short --no-cov -m 'not e2e and not npu and not gpu'
uv run pytest tests/unit/core tests/unit/onnx tests/unit/cache tests/unit/utils tests/unit/test_helpers tests/unit/sysinfo tests/unit/inspect tests/unit/optracing tests/regression tests/cli --tb=short --no-cov -m 'not e2e and not npu and not gpu'

@kujin66

kujin66 commented Jul 16, 2026

Copy link
Copy Markdown
Contributor Author

Reviewer-style verification (not a formal GitHub approval; same account authored the PR):

  • PR branch head: e5cd3ec33bfaa14eaf037be937b720c394810274.
  • Scope check: diff is limited to examples/recipes/README.md plus the two examples/recipes/valentinafevu_yolos-fashionpedia/*.json recipe files. No source, tests, or skill files are included.
  • Baseline freshness: PR body cites origin/main/baseline HEAD 904c20109ab31d737c5132c3686ab404236edd57; current origin/main was refreshed and matches that commit.
  • Recipe check: object-detection_fp16_config.json uses quant.mode=fp16; rebuilt artifact temp/yolos_fashionpedia_fp16_recipe2/model.onnx has 226 FLOAT16 initializers and preserved I/O. object-detection_w8a8_config.json artifact contains QDQ nodes (QuantizeLinear=440, DequantizeLinear=666).
  • L0/L1 evidence: PR body includes build output dirs, build-complete lines, structural I/O shapes, CPU provider snapshot, and w8a8 perf numbers.
  • CI: all checks are passing at time of comment: license/cla, lint, Analyze (Python), CodeQL, and all test jobs.

Remaining gate: external maintainer/reviewer approval and conversion from Draft to Ready.

@ssss141414 ssss141414 added the model-scale-by-skill Model support PR created or maintained by the adding-model-support skill label Jul 21, 2026
@ssss141414
ssss141414 force-pushed the kujin66/add-yolos-fashionpedia-recipe branch from 9ac2bbf to 2d15c75 Compare July 22, 2026 20:07
@ssss141414

Copy link
Copy Markdown
Contributor

APPROVE

Independent final-head re-verification completed for 2d15c75a4b005ec60cceb1f04e3cde83a32d534c (review verdict comment, not a same-account formal GitHub approval).

  • Fresh remote checkout: clean; diff is exactly the nested CPU fp32/fp16 recipe pair; README unchanged.
  • Contributor credit: original jinkun <jinkun@microsoft.com> authored commit remains in history after rebase onto current main.
  • Identity pins: model 0cfdb77c01cfbf0838b940ecff9c572f84c9d4f4; Fashionpedia 80845435ce686b8a9dbf70a05452fbfb8e09cdd7.
  • Independent rebuild: fp32 and fp16 both exit 0; reproduced bit-identical artifact hashes fc3d5b68...ef79c and d39e0e57...78bfe.
  • Structure/parity: named pixel_values I/O preserved; 400 fp32 nodes / 403 fp16 nodes; 223 FLOAT / 223 FLOAT16 initializers; max relative L2 3.627619e-7 / 3.275043e-4, both below thresholds.
  • Independent CPU perf/RSS: fp32 mean/p50 364.092/360.761 ms, RSS 302.60 MB; fp16 530.519/484.239 ms, RSS 595.07 MB.
  • Independent pinned L3: both precisions mAP 0.0081833834, mAP50 0.0334050804, mAP75 0.0009040034 on the same 10 deterministic val samples.
  • Tester all-EP evidence is bound to the bit-identical artifact hashes: 400/400 and 403/403 components mapped; every op supported on rule-backed TensorRT RTX, QNN GPU/NPU, and OpenVINO CPU/GPU/NPU; rule-less EPs remain unknown, not unsupported.
  • Local gates: Ruff PASS; mypy PASS (409 files); affected models partition PASS (1351 passed, 6 skipped, 1 xfailed).
  • Final-SHA GitHub checks: 9/9 completed successfully, including CodeQL, lint, license/CLA, and all five CI partitions.
  • Review threads: 0 total / 0 unresolved.
  • Metadata: draft preserved; sole required label model-scale-by-skill preserved.

The earlier author verification comment is superseded by this current-main, final-head fp32/fp16 evidence.

@ssss141414 ssss141414 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

REQUEST_CHANGES

Independent re-review after the PR-description correction, without inheriting the prior APPROVE.

Verified live gates:

  • PR: #1125
  • Head remains 2d15c75a4b005ec60cceb1f04e3cde83a32d534c; the body-only update did not change it.
  • State remains OPEN and DRAFT with model-scale-by-skill.
  • Final-head checks remain 9/9 COMPLETED/SUCCESS.
  • Review threads: 0 total, 0 unresolved (hasNextPage=false).
  • Diff remains exactly the two nested CPU fp32/fp16 recipe JSON files; README is unchanged.
  • The corrected body has the required three-section hierarchy, all seven validation subsections, four ordered metadata fields, the frozen architecture tree, no local evidence paths, and values matching the current frozen handoffs.

Blocking contract failure — owner: planner (then refresh producer → tester → explainer handoffs):

  • The frozen charter and live body cite baseline/current-main commit 5deebd422e95f28fe8fd912ee50ce874710187b3.
  • A fresh git fetch origin main resolves current origin/main to 26a4a82b638f2169b5a2f75758abb31a60b1774e.
  • Exact reviewer check: git rev-list --count 5deebd422e95f28fe8fd912ee50ce874710187b3..origin/main1.
  • The intervening commit is 26a4a82b Add dynamo export support and make it the default exporter (#1156), which directly changes the export baseline this recipe evidence depends on.

Required fix:

  1. Planner refreshes/rebases to current origin/main and re-runs the recipe-free baseline plus auto-config comparison there.
  2. Producer updates/rebases the PR branch and regenerates any affected artifacts.
  3. Tester re-runs the required fp32/fp16 ladder and static/analyze evidence on the new final head.
  4. Explainer refreshes the body from those new frozen handoffs without marking the PR ready.
  5. Re-run final-head CI/thread/metadata gates.

This is the fail-closed Baseline HEAD == current origin/main requirement in the current reviewer contract. No approval is valid while the cited baseline is stale.

@ssss141414
ssss141414 force-pushed the kujin66/add-yolos-fashionpedia-recipe branch from 2d15c75 to 587dc49 Compare July 23, 2026 04:51

@ssss141414 ssss141414 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

APPROVE

Independent final-head review completed without inheriting the prior verdict.

  • Exact identity: PR head 587dc4940ccc55052f92cfcf7471c483abbfbbee; current/base/merge-base 26a4a82b638f2169b5a2f75758abb31a60b1774e. Local HEAD, authenticated REST head, and gh pr view head agree.
  • Scope/authorship: clean worktree; diff is exactly the two nested CPU fp32/fp16 recipe JSON additions (133 insertions), with no README/source/test/skill changes. Original jinkun <jinkun@microsoft.com> authorship remains in commit 877200a6778d65c437a3f99bdb2d570536afed96.
  • Frozen handoffs: independent cross-check passed every hierarchy, metadata, head-binding, baseline, delta, metric, analysis, quality, portability, draft/label, and body-proof assertion. Effort L0 / Goal L3 / Outcome L0; both required tuples pass L0-L3.
  • Independent rebuild on this exact head: fp32 and fp16 both exited 0 and reported complete. Final artifact SHA-256 values are 21f6b5f7b0c14274ba92892ba581894c2b66c5b6b656cac85f115e68db70b9d4 plus external data f4f7c98e7f9bed5dc9cd949f99a6ba65679b592e2df9f784ecb66a05dae8b260, and 0a8c996e9dee6f7bd4f22b562882bca1154b089e996805dd966211aacfdebbef.
  • Independent structure/parity: named pixel_values input and logits/pred_boxes outputs preserved; fp32 is 479 nodes with 226 FLOAT initializers, fp16 is 482 nodes with 226 FLOAT16 initializers. Three-seed max relative L2 is 4.0732761197129765e-07 (threshold 1e-4) and 0.00032545141954960094 (threshold 0.02); all structure, precision, and parity checks pass using CPUExecutionProvider.
  • Frozen L1: fp32 mean/p50/throughput/RSS 383.452 ms / 381.623 ms / 2.61 samples/s / 414.18 MB; fp16 561.071 ms / 557.84 ms / 1.78 samples/s / 596.22 MB.
  • Frozen L3: both precisions reproduce pinned Fashionpedia revision 80845435ce686b8a9dbf70a05452fbfb8e09cdd7 on 10 deterministic val samples with mAP 0.008183383382856846, mAP50 0.03340508043766022, and mAP75 0.0009040034492500126.
  • Static analysis: 479/479 fp32 and 482/482 fp16 semantic-scope nodes mapped, zero optimizer fallback/unmapped; 14/15 op types. QNN GPU/NPU partial types are Reshape, Div, Erf, Add, and Mul; no unsupported types. Rule-less EPs remain unknown, not unsupported.
  • Quality: frozen exact-head matrix is 8/8 PASS (license insertion, Ruff, mypy over 409 source files, and five test partitions).
  • Live body: authenticated normalized body equals the frozen explainer body and proof SHA-256 a78a3491007733cf17bad2e6a23345389d46bd65f4044707429758b2df3a0b8e; required hierarchy is intact and no local absolute/scratch evidence path is present.
  • Final-SHA CI: 9/9 COMPLETED/SUCCESS — Analyze (Python), lint, test (analyze), test (models), test (optim), test (commands), test (remaining), CodeQL, and license/cla.
  • Review state: 0 line comments; 0 review threads / 0 unresolved with pagination complete. The two issue comments are historical evidence comments, not unresolved review threads.
  • Metadata: OPEN and DRAFT preserved; model-scale-by-skill preserved. The prior correct CHANGES_REQUESTED review on stale head 2d15c75a4b005ec60cceb1f04e3cde83a32d534c remains in review history; this approval is the fresh verdict for repaired head 587dc4940ccc55052f92cfcf7471c483abbfbbee.

@ssss141414

Copy link
Copy Markdown
Contributor

APPROVE ? BOM-only body republish independently reverified.

  • Live body starts with UTF-8 bytes 23 23 20 53 75 6D 6D 61 72 79 / logical ## Summary, with no BOM. Its exact heading tree matches the frozen body; normalized SHA-256 is 0fa2dac235cc47fa312ca23ab329b1d20ccb35bd12e22f423836276d36016002; no local or scratch paths are present.
  • PR head remains 587dc4940ccc55052f92cfcf7471c483abbfbbee; base and current origin/main remain 26a4a82b638f2169b5a2f75758abb31a60b1774e.
  • Final-head CI remains 9/9 COMPLETED/SUCCESS; review threads are 0 total / 0 unresolved.
  • PR remains Draft with model-scale-by-skill. The existing formal APPROVED review is bound to commit 587dc4940ccc55052f92cfcf7471c483abbfbbee.

No body, code, or readiness state was modified by this verification.

@DingmaomaoBJTU
DingmaomaoBJTU marked this pull request as ready for review July 23, 2026 11:03
@DingmaomaoBJTU
DingmaomaoBJTU requested a review from a team as a code owner July 23, 2026 11:03
@DingmaomaoBJTU
DingmaomaoBJTU merged commit e17f72e into main Jul 23, 2026
9 checks passed
@DingmaomaoBJTU
DingmaomaoBJTU deleted the kujin66/add-yolos-fashionpedia-recipe branch July 23, 2026 11:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

model-scale-by-skill Model support PR created or maintained by the adding-model-support skill

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants